Menghitung Nilai $ e^x $ dengan Pendekatan Deret MacLaurin¶
Deret Taylor dan Deret MacLaurin¶
Dalam deret MacLaurin yaitu menjumlahkan tiap-tiap suku sampai batas yang ditentukan, sehingga akan menghasilkan nilai yang mendekati nilai sebenarnya. Deret Maclaurin ini dimanfaatkan dalam metode numerik untuk menghitung atau menghampiri nilai fungsi yang susung dihitung secara menual, seperti halnya kita ingin mencari nilai dari $ sin x $, $ cos x $, $ e^x $, $ log x $, atau $ ln(x+1) $. Kita membutuhkan alat khusus, seperti kalkulator atau tabel khusus untuk mencari nilai-nilai dari dari fungsi tersebut.
Dalam kasus ini akan dihitung nilai dari $ e^x $ secara menual dengan x=1, serta menerapkannya dalam bahasa pemrograman python untuk menghitung $ e^{3x} $.
Perhitung nilai $ e^x $ dengan $ x=1 $¶
Maka didapatkan nilai True Error, yaitu 0.0016151617923787498.
Implementasi Deret MacLaurin pada Python¶
Pada implementasi deret MacLaurin dengan bahasa pemrograman python, kita akan mencoba untuk menghitung nilai dari $ e^{3x} $ dengan batas error/threshold 0,001.
import math error = 0.001 def percent(angka): return str(round(angka*100, 4)) + '%' def f(x): f_turunan = 1 current=i=0 iteration = True while iteration: old = current current += (f_turunan*(x**i))/math.factorial(i) #Σf(0)x^i / i! print('f ke-', i,'=', f_turunan, ' {e^3x=', current ,'} {Ea=', current-old, '} {|ϵa|%=', (current-old)/current, '|', percent((current-old)/current), '}' ) if current-old < error: iteration = False else: f_turunan *= 3 i +=1 f(1)
Pada program tersebut ditetapkan error yaitu 0,001, di program tersebut tersebut terdapat fungsi percent(args) yang nantinya akan digunakan untuk untuk menkonversi nilai menjadi persen pada relative aproksimasi error.
def percent(angka): return str(round(angka*100, 4)) + '%'
def f(x): f_turunan = 1 current=i=0 iteration = True while iteration: old = current current += (f_turunan*(x**i))/math.factorial(i) #Σf(0)x^i / i! if current-old < error: iteration = False else: f_turunan *= 3 i +=1
Saat nilai aproksimasi saat ini dikurangi nilai aproksimasi sebelumnya kurang dari batas error maka iterasi akan dihentikan, sebaliknya program akan terus beriterasi ke suku selanjutnya dan turunan dibawahnya.
Hasil program saat di jalankan:
f ke- 0 = 1 {e^3x= 1.0 } {Ea= 1.0 } {|ϵa|%= 1.0 | 100.0% } f ke- 1 = 3 {e^3x= 4.0 } {Ea= 3.0 } {|ϵa|%= 0.75 | 75.0% } f ke- 2 = 9 {e^3x= 8.5 } {Ea= 4.5 } {|ϵa|%= 0.5294117647058824 | 52.9412% } f ke- 3 = 27 {e^3x= 13.0 } {Ea= 4.5 } {|ϵa|%= 0.34615384615384615 | 34.6154% } f ke- 4 = 81 {e^3x= 16.375 } {Ea= 3.375 } {|ϵa|%= 0.20610687022900764 | 20.6107% } f ke- 5 = 243 {e^3x= 18.4 } {Ea= 2.0249999999999986 } {|ϵa|%= 0.11005434782608689 | 11.0054% } f ke- 6 = 729 {e^3x= 19.412499999999998 } {Ea= 1.0124999999999993 } {|ϵa|%= 0.05215711526078554 | 5.2157% } f ke- 7 = 2187 {e^3x= 19.846428571428568 } {Ea= 0.4339285714285701 } {|ϵa|%= 0.02186431527802765 | 2.1864% } f ke- 8 = 6561 {e^3x= 20.009151785714284 } {Ea= 0.162723214285716 } {|ϵa|%= 0.008132439397150944 | 0.8132% } f ke- 9 = 19683 {e^3x= 20.063392857142855 } {Ea= 0.05424107142857082 } {|ϵa|%= 0.0027034844911218605 | 0.2703% } f ke- 10 = 59049 {e^3x= 20.079665178571425 } {Ea= 0.016272321428569825 } {|ϵa|%= 0.0008103880858499218 | 0.081% } f ke- 11 = 177147 {e^3x= 20.08410308441558 } {Ea= 0.004437905844156376 } {|ϵa|%= 0.00022096609569784593 | 0.0221% } f ke- 12 = 531441 {e^3x= 20.08521256087662 } {Ea= 0.001109476461039094 } {|ϵa|%= 5.523847246706314e-05 | 0.0055% } f ke- 13 = 1594323 {e^3x= 20.08546859390609 } {Ea= 0.0002560330294691937 } {|ϵa|%= 1.2747177307422833e-05 | 0.0013% } #nilai sebenarnya dari f(x)=e^3x dengan nilai x=1 yaitu : 20.085536923187664, yang diambil dari module math.e di python
Maka di dapatkan True Value = 6.832928157507467e-05. Dapat disimpulkan semakin kecil batasan error yang diberikan, maka selisih antara nilai sebenarnya dengan nilai perkiraan tidak akan jauh atau tingkat akurasi nilai yang dihasilkan semakin bagus.
Berikut merupakan hasil visualisasi dalam bentuk tabel, hasil dari perhitungan $ e^{3x} $ dengan x=1.
n | $ e^{3x} $ | $ E_a $ | $ | \epsilon_a | \% $ |
---|---|---|---|
0 | 1.0 | 1.0 | 1.0 | 100% |
1 | 4.0 | 3.0 | 0.75 | 75.0% |
2 | 8.5 | 4.5 | 0.5294117647058824 | 52.9412% |
3 | 13.0 | 4.5 | 0.34615384615384615 | 34.6154% |
4 | 16.375 | 3.375 | 0.20610687022900764 | 20.6107% |
5 | 18.4 | 2.0249999999999986 | 0.11005434782608689 | 11.0054% |
6 | 19.412499999999998 | 1.0124999999999993 | 0.05215711526078554 | 5.2157% |
7 | 19.846428571428568 | 0.4339285714285701 | 0.02186431527802765 | 2.1864% |
8 | 20.009151785714284 | 0.162723214285716 | 0.008132439397150944 | 0.8132% |
9 | 20.063392857142855 | 0.05424107142857082 | 0.0027034844911218605 | 0.2703% |
10 | 20.079665178571425 | 0.016272321428569825 | 0.0008103880858499218 | 0.081% |
11 | 20.08410308441558 | 0.004437905844156376 | 0.00022096609569784593 | 0.0221% |
12 | 20.08521256087662 | 0.001109476461039094 | 5.523847246706314e-05 | 0.0055% |
13 | 20.08546859390609 | 0.0002560330294691937 | 1.2747177307422833e-05 | 0.0013% |
Keterangan :
n = iterasi / suku
$ e^x $ = nilai yang dicari
$ E_a $ = aproksimasi error
$ |\epsilon_a| \% $ = relatif aproksimasi error